
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently,
// but are changed infrequently

#pragma once
#ifndef _SECURE_ATL
#define _SECURE_ATL 1
#endif
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN            // Exclude rarely-used stuff from Windows headers
#endif
#include "targetver.h"

#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS      // some CString constructors will be explicit

// turns off MFC's hiding of some common and often safely ignored warning messages
#define _AFX_ALL_WARNINGS

#include <afxwin.h>         // MFC core and standard components
#include <afxext.h>         // MFC extensions


#include <afxdisp.h>        // MFC Automation classes


#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h>           // MFC support for Internet Explorer 4 Common Controls
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>             // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT

#include <afxcontrolbars.h>     // MFC support for ribbons and control bars 
#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#endif
//STL includes
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <ctype.h>
#include <string.h>
#include <vector>
#include <exception>
#include <fstream>
//Boost includes
//string functions
#include <boost/algorithm/string.hpp>
//regex
#include <boost/regex.hpp>
//smart pointers
#include <boost/smart_ptr.hpp>
#include <boost/weak_ptr.hpp>
#define sptr boost::shared_ptr
#define wptr boost::weak_ptr
//System includes
//#define _WIN32_WINNT _WIN32_WINNT_MAXVER
//#include "afxwin.h"
#include "afxdialogex.h"
#include "resource.h"
//#include "targetver.h"
#define _BLUE_VERSION_HIGH_ 0
#define _BLUE_VERSION_LOW_ 0
#define PI NV_PI
#define _MAX_COLOR_ATTACHMENTS 10
//#define alert(string) MessageBox(NULL, string, L"Error", MB_OK)
//Graphics includes
//OpenGL
#include <gl/glew.h>
#include <GL/glut.h>
//Cg
#include <Cg/cg.h>
#include <Cg/cgGL.h>
//DevIL
/*
	Somehow, the DevIL library doesn't work well with UNICODE, so I had to hack around and disable UNICODE localy, as to be able to load files from
	the hard drive.
	I will try to fix that issue in the future.

	Arseni Natapov, 1/10/2011
*/
#undef _UNICODE
#include <IL/il.h>
#include <IL/ilu.h>
#include <IL/ilut.h>
#define _UNICODE 1
#include <nvMath.h>
//Physics includes
#undef min
#undef max
#include <NxCooking.h>
#include <NxPhysics.h>
#include <NxPhysicsSDK.h>
typedef NxQuat				Quat;
typedef NxVec3				Vec3;
typedef NxMat33				Mat33;

typedef NxReal				real;
typedef nv::vec2<real>		Vec2;
typedef nv::vec3<real>		NVec3;
typedef nv::vec4<real>		Vec4;
typedef nv::matrix4<real>	Mat44;
#include <Stream.h>
//#include "BmpLoader.h"
//#include "MediaPath.h"
//#include "wavefront.h"
#include "MyCloth.h"
//imports from previous projects
//string class that conveniently switches between ASCII and Unicode
#include "BBString.h"
typedef BBString string;
//exception classes
#include "BException.h"
//vector that allows to search by name
//should only be used on pointers of types derived from Base class
#include "BBVector.h"
#define Vector BBVector
//Project includes
#include "Rotator.h"
#define _err(str) ReportError(str)
#define  _CHECK ThrowError()
//foundation classes
#include "Base.h"
#include "Reader.h"

//Controls includes
#include "OpenGLControl.h"
#include "Comp371.h"
#include "Comp371Dlg.h"

#include "Externals.h"
extern string gMainConfigPath;
extern SingletonManager globals;


